/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package miselania.memoriaintermedia;

/**
 
 */
public class PaginaC<T> {//para q pueda almacenar cualkier tipo de datos se usa <T>
    
    //identificador de la pagina de disco
    private int numeroPagina;

       //datos almacenados en el bloque
    private T datos;
    // bandera para clavar bloques
    private boolean band=false;
    //indicador si pagina se modifico
    private boolean modified=false;

    
     public PaginaC(int numeroPagina, T datos) {
        this.numeroPagina = numeroPagina;
        this.datos = datos;
    }
     
    public boolean isModified() {
        return modified;
    }

    public void setModified(boolean modified) {
        this.modified = modified;
    }

    public boolean isBand() {
        return band;
    }

    public void setBand(boolean band) {
        this.band = band;
    }
     
    public T getDatos() {
        return datos;
    }

    public void setDatos(T datos) {
        this.datos = datos;
        this.modified=true;
    }

    public int getNumeroPagina() {
        return numeroPagina;
    }

    public void setNumeroPagina(int numeroPagina) {
        this.numeroPagina = numeroPagina;
    }
     
    public void Almacenar() {
        //Datos cambiados edben enviarse a disco 
        System.out.println("Pagina "+this.numeroPagina+" modificada en disco con datos "+this.datos);
        this.modified= false;
    }

    //devuelve la representacion textual de la pagina
    
   @Override
   public String toString()
   {
       return "Numero de Pagina:"+
               this.numeroPagina + "\t" +
               "Dato de pagina : "+ this.datos +"\t" +
               "Es clavado: " + this.band;
   }
    
}
